import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import qiankun from "vite-plugin-qiankun"
// https://vite.dev/config/
const projectname = "jssub" // 获取项目名称，默认为Investment
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    // vueDevTools(),
    // vueDevTools(),  调试工具在本地启动时会对主框架造成报错影响
    qiankun(projectname, {
      useDevMode: true, // 使用开发模式
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
  build: {
    outDir: "dist",
    sourcemap: true,
    rollupOptions: {
      output: {
        format: "umd", // 构建为umd格式
        name: "subapp", // 设置全局变量名称
        entryFileNames: "js/[name].[hash].js", // 打包后文件名
        chunkFileNames: "js/[name].[hash].js", // 打包后文件名
        assetFileNames: "assets/[name].[hash].[ext]", // 打包后文件名
      },
    },
  },
  base: "/" + projectname, // qiankun子应用基础路径
  server: {
    host: "localhost", // 服务器地址
    port: 8092, // 服务器端口
    strictPort: true, // 如果端口被占用，则退出进程
    open: false, // qiankun子应用通常不需要自动打开浏览器
    cors: true, // 必须启用CORS
    origin: "http://localhost:8092", // qiankun需要的origin配置
    proxy: {
      // 配置跨域
      "/api": {
        // 需要跨域的路径 项目使用的微服务 不同的项目会有不同的路径 根据前缀来区分
        target: "http://localhost:8080", // 目标接口域名
        changeOrigin: true, // 是否跨域
        rewrite: (path) => path.replace(/^\/api/, ""), // 重写路径
      },
    },
  },
})
